import axios from "axios"
import {Notify, Toast} from "vant"
import router from "../router";

export function request(config) {
    // 创建实列
    const instance = axios.create({
        baseURL: process.env.NODE_ENV === 'production' ? 'https://api.shop.eduwork.cn/' : 'https://api.shop.eduwork.cn/',
        timeout: 5000,
    })

    // 请求拦截
    instance.interceptors.request.use(config => {
        // 携带 token
        const token = window.localStorage.getItem('token')
        token && (config.headers.Authorization = 'Bearer ' + token)
        return config
    }, err => {

    })

    // 响应拦截
    instance.interceptors.response.use(res => {
        return res.data ? res.data : res
    }, err => {
        // 如果需要登录
        if (err.response.status === 401) {
            Toast.fail('请先登录')
            router.push({name: 'Login'})
        }

        // 处理错误信息
        Notify(err.response.data.errors[Object.keys(err.response.data.errors)[0]][0])

        // 错误信息处理
        // let errMsg = '服务器奔了';
        // if (err.response) {
        //     switch (err.response.status) {
        //         case 400:
        //             errMsg = '错误请求'
        //             break;
        //         case 401:
        //             errMsg = '未登录，请重新登录'
        //             break;
        //         case 403:
        //             errMsg = '决绝访问'
        //             break;
        //         case 404:
        //             errMsg = '请求错误，未找到该资源'
        //             break;
        //         case 405:
        //             errMsg = '请求方法未允许'
        //             break;
        //         case 408:
        //             errMsg = '请求超时'
        //             break;
        //         case 500:
        //             errMsg = '服务器出错'
        //             break;
        //         case 501:
        //             errMsg = '网络未实现'
        //             break;
        //         case 502:
        //             errMsg = '网络错误'
        //             break;
        //         case 503:
        //             errMsg = '服务不可用'
        //             break;
        //         case 504:
        //             errMsg = '网络超时'
        //             break;
        //         case 505:
        //             errMsg = 'http版本不支持该请求'
        //             break;
        //         default:
        //             errMsg = '连接错误'
        //     }
        // } else {
        //     if (!window.navigator.onLine) errMsg = '网络中断'
        // }
        // Toast.fail(errMsg)
    })
    return instance(config)
}